Speech signal processing is well known in the art and is often utilized to compress an incoming speech signal, either for storage or for transmission. The speech signal processing typically involves dividing the incoming speech signals into frames and then analyzing each frame to determine its components. The components are then stored or transmitted.
Typically, the frame analyzer determines the short-term and long-term characteristics of the speech signal. The frame analyzer can also determine one or both of the short- and long-term components, or "contributions", of the speech signal. For example, linear prediction coefficient analysis (LPC) provides the short-term characteristics and contribution and pitch analysis and prediction provides the long-term characteristics as well as the long-term contribution.
Typically, either, both or neither of the long- and short-term predictor contributions are subtracted from the input frame, leaving a target vector whose shape has to be characterized. Such a characterization can be produced with multi-pulse analysis (MPA) which is described in detail in section 6.4.2 of the book Digital Speech Processing, Synthesis and Recognition by Sadaoki Furui, Marcel Dekker, Inc., New York, N.Y. 1989. The book is incorporated herein by reference.
In MPA, the target vector, which is formed of a multiplicity of samples, is modeled by a plurality of pulses of equal amplitude (or spikes), of varying location and varying sign (positive and negative). To select each pulse, a pulse is placed at each sample location and the effect of the pulse, defined by passing the pulse through a filter defined by the LPC coefficients, is determined. The pulse which provides most closely matches the target vector is selected and its effect is removed from the target vector, thereby generating a new target vector. The process continues until a predetermined number of pulses have been found. For storage or transmission purposes, the result of the MPA analysis is a collection of pulse locations and a quantized value of the gain.
The gain is typically determined from the first pulse which is determined. This gain is then utilized for the remaining pulses. Unfortunately, the gain value of the first pulse is not always indicative of the overall gain value of the target vector and therefore, the match to the target vector is not always very accurate.